package services

import (
	"crypto/rand"
	"encoding/hex"
	"login/models"
	"time"
)

// GenerateToken 生成一个临时 token
func GenerateToken() (string, error) {
	// 生成一个随机 token
	byteArray := make([]byte, 16)
	_, err := rand.Read(byteArray)
	if err != nil {
		return "", err
	}
	token := hex.EncodeToString(byteArray)

	// 将 token 存入数据库，并设置过期时间
	expiration := time.Now().Add(10 * time.Minute) // 设置过期时间
	err = models.SaveToken(token, expiration)      // 假设在 models 中定义了这个方法
	if err != nil {
		return "", err
	}

	return token, nil
}
